const db = require('../db/index')
const bcrypt = require('bcryptjs')


exports.getUserInfo = function (req, res) {
	let sql = `SELECT username, nickname, email FROM ev_users WHERE id=?`
	db.query(sql, req.user.id, function (err, results) {
		// sql 执行失败
		if (err) return res.cc(err)
		// sql 查询无数据
		if (results.length !== 1) return res.cc('获取用户信息失败！')
		res.send({
			status: 0,
			message: 'get info success!',
			data: results[0]
		})
	})
}

exports.updateUserInfo = function (req, res) {
	// console.log(req.user);
	let sql = `update ev_users set ? where id=?`
	db.query(sql, [req.body, req.body.id], function (err, results) {
		// sql 执行失败
		if (err) return res.cc(err)
		// sql 查询无数据
		if (results.affectedRows !== 1) return res.cc('更改用户信息失败！')
		res.cc('updataUserInfo success!', 0)
	})
}

exports.updatePassword = function (req, res) {
	const sql = `select * from ev_users where id=?`
	db.query(sql, req.user.id, (err, results) => {
		// 执行 SQL 语句失败
  		if (err) return res.cc(err)

  		// 检查指定 id 的用户是否存在
  		if (results.length !== 1) return res.cc('用户不存在！')

  		let compareResult = bcrypt.compareSync(req.body.oldPwd, results[0].password)
  		if (!compareResult) return res.cc('原始密码错误!')

  		const sql = `update ev_users set password=? where id=?`
  		let newPwd = bcrypt.hashSync(req.body.newPwd, 10)
  		db.query(sql, [newPwd, req.user.id], (err, results) => {
  			// SQL 语句执行失败
			if (err) return res.cc(err)

			// SQL 语句执行成功，但是影响行数不等于 1
			if (results.affectedRows !== 1) return res.cc('更新密码失败！')
			res.cc('updataUserInfo success!', 0)
  		})
	})
}

exports.updateAvatar = (req, res) => {
	const sql = `update ev_users set user_pic=? where id=?`
	db.query(sql, [req.body.avatar, req.user.id], (err, results) => {
		// 执行 SQL 语句失败
		if (err) return res.cc(err)

		// 执行 SQL 语句成功，但是影响行数不等于 1
		if (results.affectedRows !== 1) return res.cc('更新头像失败！')

		// 更新用户头像成功
		return res.cc('更新头像成功！', 0)
	})
}